草庐IT

c++ - 从 C 到 C++

全部标签

c++ - Visual Studio Express 显示错误 : "internal error occured in compiler"

我使用cmake为c++库g2o创建了visualstudio文件。但是当我尝试构建它时,它无法在某些模板定义中显示错误。templateinlinevoidaxpy(constEigen::MatrixXd&A,constEigen::Map&x,intxoff,Eigen::Map&y,intyoff){y.segment(yoff,A.rows())+=A*x.segment(xoff,A.cols());}由于我不是c++专家,所以我不确定这行代码出了什么问题。我尝试评论此代码并进行构建。然后构建在下一个模板定义上失败。是visualstudio的问题吗?显示的错误是相同的代码

c++ - 在 CreateProcess 之后调用 GetModuleFileNameEx 时出现 ERROR_INVALID_HANDLE

成功调用CreateProcess后,我尝试使用GetModuleFileNameEx获取创建的进程的路径(lpApplicationName和lpCommandLine参数可以变化或为空,因此在这种情况下它们不可靠)。问题是GetModuleFileNameEx失败并出现错误6(ERROR_INVALID_HANDLE),从而使其缓冲区中包含无效数据。我无法理解原因,因为CreateProcess成功并且进程句柄应该已正确保存在pi.hProcess中。希望您能有所启发,在此先感谢您!编辑:更新:我注意到删除CREATE_SUSPENDED也可以解决此问题,但我需要设置该标志。我该怎

c++ - 在 dllmain()/DLL_PROCESS_ATTACH 中允许实例化 com 对象?

在DLLMAIN()/DLL_PROCESS_ATTACH中加载DLL可能会导致问题。但是COMObjects可以使用e.q.实例化。CoInitialize()/CoCreateInstance()?编辑:问题是:在这种情况下,创建COM实例会导致类似的错误,例如加载DLL吗?在我看来,加载DLL和创建COM实例在某种程度上是相似的。 最佳答案 我不确定你从哪里得到这句话,但听起来不对。永远不要将任何重要的代码放入DllMain中。特别是调用LoadLibrary的代码。许多WindowsAPI会在后台调用LoadLibrary,

c++ - 与 __stdcall 函数指针声明等价的 clang 是什么?

我有以下函数指针声明:externlong(__stdcall*FooPtr)(int*i);也就是说,一个函数指针指向一个函数,该函数将使用stdcall调用约定(在VS术语中)调用。我怎样才能翻译这个声明让clang理解它? 最佳答案 __attribute__((stdcall))是正确答案:clang支持thefollowinglistofattributes在语法上,它与gcc的非常相似。例如#ifdefined(__clang__)||defined(__GNUC__)#definestdCallConv__attrib

c++ - 从不同线程调用的 XInputGetState 和 XInputSetState

我有一个捕获Controller输入的线程。这是该线程所做的唯一事情-它每x毫秒调用一次XInputGetState()并将结果存储在一个同步的循环缓冲区中。当达到特定条件时,我有另一个线程通过XInputSetState()振动Controller来对此输入使用react。换句话说,一个线程只会调用XInputGetState(),而另一个线程只会调用XInputSetState()。从理论上讲,不可能同时多次调用任一函数。如果没有同步,这样做仍然不安全吗?注意:这两个函数处理完全不同的数据集,但实现最有可能读取/写入不同步的内容。 最佳答案

c++ - 有没有什么办法允许在一个像这样的循环程序上进行多线程处理?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion有没有什么方法可以在一个像这样的循环程序上允许多线程?inta=100000,b=50,c;while(a){c=b*a+c;a--;}Windows7/Code::BlocksIDE与默认的mingwc++编译器/双核4线程i5cpu

c++ - 如何在 Windows 上调用 ELF 函数

我尝试手动反转ELF文件(libGame.so)的一些游戏函数,但它们太长而且我遇到很多错误,所以我想是否可以在Windows中调用这些函数,因为处理器是x86.我尝试恢复的功能是:CDecryptBaseClass::decrypt(void*ptr,u32lenght);我一直在寻找,但我只找到了如何调用DLL函数,也许有一些hack可以将ELF作为DLL运行... 最佳答案 理论上您可以这样做,正如AndrewMedico所建议的那样。将二进制文件加载到内存中,解析ELF文件,以某种方式解析其所有外部引用,找到要调用的函数的地

c - 检测 SD 读卡器是否插入了卡

有谁知道如何使用C中的WindowsApi来检测SD卡读卡器是否插入了卡?平台:windowsxp/visa/7/8。我用谷歌搜索并查看了WindowsAPI文档(我不熟悉它,所以可能错过了很多),但一直找不到答案。我看过这篇文章HowcanIdetectwhenanSDcardispluggedin?-这很接近但没有给我我需要的东西,因为我不想检测状态的变化,而是在查询时它处于什么状态。(如果碰巧有人有这个的Ada实现,那就太棒了,否则我打算只与C链接)谢谢你的帮助马特 最佳答案 我使用WindowsAPI调用GetVolumeI

c - 错误 C2059 : syntax error : 'bad suffix on number' with cl. exe vc 编译器

我尝试编译的代码片段是这样的VOIDPTSetPageAttributexxyy(INUINT642g,INUINT64Base,INUINT64Length,INUINT32Ra,INUINT32Wa,INUINT32Xa,INMY_ATTRIBUTE_SETTINGsetting);我得到:errorC2059:syntaxerror:'badsuffixonnumber'用cl.exevc编译器 最佳答案 参数名称2g无效。它必须以字母或_开头。 关于c-错误C2059:synta

c++ - 如何检查 Windows 是嵌入式还是 POS?

我正在开发一个我不想安装在嵌入式Windows版本上的程序。是否有我可以进行的API调用或检测当前Windows版本是否为嵌入式/pos的某种标准方法? 最佳答案 也许,这有帮助。您必须使用OSVERSIONINFOEX结构并检查wSuiteMask成员...http://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx 关于c++-如何检查Windows是嵌入式还是POS?,我们在St